/* $Header: miotask.c,v 2.2 01/10/02 10:29:20 przybyls Exp $ */

/***********************************************************************/
/*                                                                     */
/*                  Copyright Hewlett-Packard Co. 1991                 */
/*                                                                     */
/***********************************************************************/

/***********************************************************************/
/* MODULE NAME: miotask.c                                              */
/* ============                                                        */
/*                                                                     */
/* Author:  Bob Cook                                                   */
/*                                                                     */
/* MODULE PURPOSE: Background task for MIO/HPIB host commands.         */
/*                                                                     */
/*                                                                     */
/*                                                                     */
/*                                                                     */
/***********************************************************************/


/*****************************/
/*   GLOBAL INCLUDE FILES    */
/*****************************/

#include  <typedefs.h>
#include  <error.h>
#include  <stddef.h>
#include  <std_ops.h>
#include  <task_pub.h>
#include  <zone_config.h>
#include  <p_wkfile.h>
#include  <wkfile.h>
#include  <ramps.h>
#include  <zone_status.h>
#include  <status.h>
#include  <method.h>
#include  <diag.h>
#include  <config.h>

#include  <cmd_set.h>
#include  <mio.h>
#include  <hostutil.h>
#include  <wkfutil.h>
#include  <duart.h>

/*****************************/
/*   LOCAL INCLUDE FILES     */
/*****************************/


/*****************************/
/*   GLOBAL VARIABLES        */
/*****************************/


/*****************************/
/*   EXTERNAL VARIABLES      */
/*****************************/

extern  CMD_QUEUE_TYPE  Free_Cmd_Q;

/*****************************/
/*   LOCAL DEFINES           */
/*****************************/


/*****************************/
/*   STATIC VARIABLES        */
/*****************************/


/*****************************/
/*   IMPLEMENT SECTION       */
/*****************************/


void MIOCommandTask(void)
{

   while(!(POWER_ON_TEST_COMPLETE))
   {
      Task_yield();    /* wait for power on sequence to complete */
   }

   while (TRUE)                 /* Loop Forever */
   {
      (void)ProcessCmds();
      CheckAndExecRs232SelfTest();
      CheckAndExecInstallWkFile(0);
      CheckAndExecInstallWkFile(1);
      CheckAndExecInstallWkFile(2);
      CheckAndExecInstallWkFile(3);
      CheckAndExecCreateWkFile();

      Task_yield();           /* Yield cpu to rest of background */

   }
}
